package com.uchonor.api.core.service;

import com.uchonor.api.core.dto.ColumnsInfo;
import com.uchonor.api.core.dto.TableInfo;
import org.springframework.jdbc.core.JdbcTemplate;

import java.sql.SQLException;
import java.util.List;

/**
 * 获取数据库元数据信息
 * @author zhoubo
 */
public interface IDataSourceMetaDataStrategy {

    /**
     * 判断是否支持
     * @param driverName
     * @return
     */
    boolean supper(String driverName);

    /**
     * 获得所有的表信息
     * @return
     */
    List<TableInfo> getAllTableList(JdbcTemplate jdbcTemplate, String tableSchema) throws SQLException;

    /**
     * 获取表的字段信息
     * @param jdbcTemplate
     * @param tableSchema
     * @param tableName
     * @return
     */
    List<ColumnsInfo> getColumnsInfo(JdbcTemplate jdbcTemplate, String tableSchema,String tableName);
}
